import {
  DEPARTMENT_TREE,
  ADD_DEPARTMENT,
  UPDATE_DEPARTMENT,
  DELETE_DEPARTMENT,
  DEPARTMENT_DETAIL,
  DEPARTMENT_LIST,
  USER_LIST,
  USER_DETAIL,
  DEL_USER,
  ADD_USER,
  REMOVE_ORG_LIST,
  REMOVE_ORGANIZER_LIST,
  INVITE_LIST,
  REMOVE_IDENTITY_LIST,
  RESOURCE_CONFIG,
  PROJECT_LIST,
  UPDATE_PERMISSION
} from "./api";
import { METHOD, request } from "@/utils/request";

/**
 * 获取组织权限树列表
 * @param params 获取组织权限树列表
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function getDepartmentTree(params) {
  return request(DEPARTMENT_TREE, METHOD.GET, params);
}

/**
 * 获取组织权限树列表
 * @param params 获取组织权限树列表
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function getDepartmentList(params) {
  return request(`${DEPARTMENT_LIST}/${params}`, METHOD.GET);
}

/**
 * 获取组织查询
 * @param params 用户参数
 * @returns {Promise<AxiosResponse<T>}
 */
export async function getDepartmentById(params) {
  return request(`${DEPARTMENT_DETAIL}/${params}`, METHOD.GET);
}

/**
 * 新增部门
 * @param params 身份权限参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function addDepartment(params) {
  return request(ADD_DEPARTMENT, METHOD.POST, params);
}

/**
 * 编辑部门
 * @param params 身份权限参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function updateDepartment(params) {
  return request(UPDATE_DEPARTMENT, METHOD.POST, params);
}

/**
 * 删除部门
 * @param params 身份权限参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function deleteDepartment(params) {
  return request(`${DELETE_DEPARTMENT}/${params}`, METHOD.GET);
}

/**
 * 获取用户列表
 * @param params 用户参数
 * @returns {Promise<AxiosResponse<T>}
 */
export async function getUserList(params) {
  return request(USER_LIST, METHOD.POST, params);
}

/**
 * 添加用户
 * @param params 添加用户所需参数
 * @returns {Promise<AxiosResponse<T>}
 */
export async function addUser(params) {
  return request(ADD_USER, METHOD.POST, params);
}

/**
 * 删除用户
 * @param params 删除用户参数
 * @returns {Promise<AxiosResponse<T>}
 */
export async function delUser(params) {
  return request(DEL_USER, METHOD.POST, params);
}

/**
 * 获取用户查询
 * @param params 用户参数
 * @returns {Promise<AxiosResponse<T>}
 */
 export async function getUserById(params) {
  return request(`${USER_DETAIL}/${params}`, METHOD.GET);
}

/**
 * 获取移除组织列表
 * @param params
 * @returns {Promise<AxiosResponse<T>}
 */
export async function getRemoveOrgList(params) {
  return request(REMOVE_ORG_LIST, METHOD.POST, params);
}

/**
 * 获取移除组织人员列表
 * @param params
 * @returns {Promise<AxiosResponse<T>}
 */
 export async function getRemoveLOrganizerList(parmas) {
  return request(REMOVE_ORGANIZER_LIST, METHOD.POST, parmas);
}

/**
 * 获取邀请人员列表
 * @param params
 * @returns {Promise<AxiosResponse<T>}
 */
 export async function getInviteList(parmas) {
  return request(INVITE_LIST, METHOD.POST, parmas);
}

/**
 * 获取删除组织身份列表
 * @param params
 * @returns {Promise<AxiosResponse<T>}
 */
export async function getRemoveIdentityList(parmas) {
  return request(REMOVE_IDENTITY_LIST, METHOD.POST, parmas);
}

/**
 * 资源配置 列表
 * @param params
 * @returns {Promise<AxiosResponse<T>}
 */
export async function getResourceList(parmas) {
  return request(RESOURCE_CONFIG, METHOD.POST, parmas);
}

/**
 * 资源配置 保存
 * @param params
 * @returns {Promise<AxiosResponse<T>}
 */
export async function updatePerssion(parmas) {
  return request(UPDATE_PERMISSION, METHOD.POST, parmas);
}

/**
 * 项目 列表
 * @param params
 * @returns {Promise<AxiosResponse<T>}
 */
export async function getProjectList(parmas) {
  return request(PROJECT_LIST, METHOD.POST, parmas);
}